// 版权归 瞄你个汪 所有。使用本代码应遵守相关法律法规和Apache 2.0开源许可要求。
package top.geeke.mapper;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * 表构造器mapper
 * @author 瞄你个汪
 * @since 2024/05/01 12:00
 */
@Mapper
public interface TableBuilderMapper {
    /**
     * 获取所有字段信息
     * @param tableName 表名
     */
    @Select("SHOW COLUMNS FROM ${tableName}")
    List<Map<String, Object>> getAllColumns(@Param("tableName") String tableName);

    /**
     * 查询所有非主键索引
     * @param tableName 表名
     */
    @Select("SHOW INDEXES FROM ${tableName} WHERE Key_name != 'PRIMARY' ")
    List<Map<String, Object>> getAllIndexes(@Param("tableName") String tableName);

    /**
     * 执行SQL
     * @param sql sql语句
     */
    @Insert("${sql}")
    void execute(@Param("sql")String sql);
}
